/**
* jquery.12r.comma.js 키보드의 숫자를 입력시 3자리마다 콤마를 찍어 줍니다.
*
* @options
*    numberCheck 키보드 입력시 문자를 체크 true, false
*    msg 경고 메시지
*
* @use
*    var c =jQuery.numberformat(".comma");
*   $(".comma").numberformat();
*
* @auther jsyang <yakuyaku@gmail.com>
* @since 2010년 12월 9일 목요일
* @version 1.0
*/
;(function($){

    $.extend($.fn, {
        numberformat : function( opts ) {

            var defaults = { msg : ' not number ', numberCheck : false };
            var o = $.extend( {}, defaults , opts);

            var numCheck = function( event ) {
                if (event.keyCode < 45 || event.keyCode > 57) {
                    event.returnValue = false;
                }
            };

            var isNum = function( inputValue , msg ) {
                var checkCode = inputValue.value.charCodeAt(inputValue.value.length-1);
                var str;

                if(!(checkCode >= 48 && checkCode <= 57)) {
                    alert(msg);
                    str = inputValue.value.substring(0,inputValue.value.length-1);
                    inputValue.value = str;
                    inputValue.focus();

                }else if( checkCode >= 48 && checkCode <= 57 ) {
                    inputValue.focus();
                }
            };

    $(this).unbind('.comma');

            $(this).bind('keypress.comma', function(e){
                numCheck(e);
            });

            $(this).bind('keyup.comma', function(e){
                if ( o.numberCheck ) {
                    isNum( this, o.msg );
                }
                this.value = $.numberformat($.trim(this.value));
            });

            return { 'numCheck' : numCheck  };
        }
    });

    $.extend({
    numberformat : function(num){
    var n = '' + num;

    var str    = this.delComma(n);

    var regx    = new RegExp(/(-?\d+)(\d{3})/);
    var bExists = str.indexOf(".",0);
    var strArr  = str.split('.');
    while(regx.test(strArr[0])){
    strArr[0] = strArr[0].replace(regx,"$1,$2");
    }

    if (bExists > -1) {
    return strArr[0] + "." + strArr[1];
    } else {
    return strArr[0];
    }

    },
    delComma : function(str){
    return str.replace(/,/gi,'');
    }

    });

})(jQuery);
